package com.bubblegumproject.ogo.action;

/**
 * An <code>Agent</code> is a {@link Reactor} that acts primarily as a stateful <code>Action</code> router. As new
 * <code>Action</code> objects arrive from several different sources the <code>Agent</code>, based on its state and
 * the given <code>Action</code>, will route the <code>Action</code> to an appropriate {@link AbstractFlow} and
 * potentially transition to a new state.
 * <p>
 * An Agent may also be defined as a {@link Flow} that is never finished because the <code>react</code> method is an
 * {@link com.bubblegumproject.ogo.component.ActionHandler} method.
 *
 *
 * @author Azubuko Obele (buko.obele@gmail.com)
 */
public interface Agent extends Reactor, Flow {

}
